package auto;

import util.NetwerkComponent;

/**
 *
 * @author Jonas
 */
public interface BoordComputer extends NetwerkComponent {
    /**
     * Er moet gpsdata naar de boordcomputer kunnen verstuurd worden
     * @param location Plaats die doorgestuurd wordt
     * @param timestamp Moment waarop deze locatie bereikt was
     */
    public void pushData(Location location,long timestamp);

    /**
     * Voeg een gps toe aan de boordcomputer, dit is nodig om te kunnen rijden
     * @param gps de gps die data zal doorsturen via de pushData
     */
    public void attachGPS(GPS gps);

    /**
     * Loskoppelen van de gps
     */
    public void detachGPS();

    /**
     * De boordcomputer laten weten dat de motor gestart is, en er vanaf nu betaald
     * mag worden voor de tijd op de weg
     * @return Is het starten van de motor geslaagd?
     */
    public boolean startEngine();

    /**
     * De boordcomputer laten weten dat de motor stilligt,
     * en er niet meer betaald moet worden
     */
    public void stopEngine();
    public rekeningrijdenserver.RekeningRijdenServer getServer();
    public boolean checkWithServer(rekeningrijdenserver.RekeningRijdenServer rrs);
}
